package com.tanguy.user.utlis.extend

import android.app.Activity
import android.text.TextUtils
import com.tanguy.user.App
import com.tanguy.user.App.Companion.app
import com.tanguy.user.bean.DriverRegister
import com.tanguy.user.bean.HotelRegister
import com.tanguy.user.bean.User
import com.tanguy.user.utlis.ToastUtils.showToast
import com.tanguy.user.utlis.Utils

/**
 * Created by dab on 2017/11/3 0003 08:56
 * 检测是否符合规矩
 */
/**
 * 检测手机号
 *
 * @param phone
 * @return
 */
fun checkPhoneNumber(phone: String): Boolean {
    if (TextUtils.isEmpty(phone)) {
        showToast(app, "请输入手机号")
        return false
    }
    if (phone.length != 11) {
        showToast(app, "请输入11位的手机号")
        return false
    }
    if (!Utils.isPhoneNumber(phone)) {
        showToast(app, "手机号不合法")
        return false
    }
    return true
}

/**
 * 检测密码
 *
 * @param password
 * @return
 */
fun checkPassword(password: String): Boolean {
    if (TextUtils.isEmpty(password)) {
        showToast(app, "请输入密码")
        return false
    }
    val length = password.length
    if (length < 6 || length > 18) {
        showToast(app, "密码的长度在6到18位之间")
        return false
    }
    return true
}

/**
 * 检测两个密码是否一样
 *
 * @param password
 * @return
 */
fun Activity.checkPasswordAlike(password: String, newPassword: String): Boolean {
    if (!checkPassword(password)) {
        return false
    }
    if (TextUtils.isEmpty(newPassword)) {
        showToast("请输入确认密码")
        return false
    }
    if (password != newPassword) {
        showToast("两次密码不一致")
        return false
    }
    return true
}

/**
 * 检测验证码
 *
 * @param captcha
 * @return
 */
fun checkCaptcha(captcha: String): Boolean {
    if (TextUtils.isEmpty(captcha)) {
        showToast(app, "请输入验证码")
        return false
    }
    if (captcha.length != 6) {
        showToast(app, "请输入6位数的验证码")
        return false
    }
    return true
}


fun Activity.checkCardId(card: String): Boolean {
    if (TextUtils.isEmpty(card)) {
        showToast("请输入身份证号")
        return false
    }
    if (card.length < 15) {
        showToast("请输入正确的身份证号")
        return false
    }
    val substring = card.substring(0, card.length - 1)
    if (substring.toLowerCase().contains("X")) {
        showToast("请输入正确的身份证号")
        return false
    }
    return true
}

/**
 * 检测登录状态(并且把用户放到)
 */
inline fun checkLogin(user: User?, check: (errMsg: String?) -> Unit) {
    if (user == null) {
        check.invoke("非法状态异常,请重试!")
        return
    }

    if (user.state == 2) {
        check.invoke("用户已经被冻结,请联系客服!")
        return
    }
    App.app.user = user
    check.invoke(null)
}


/**
 *检测司机注册信息是否填完了
 */
fun Activity.checkDriverRegister(driverRegister: DriverRegister): Boolean {
    if (TextUtils.isEmpty(driverRegister.name)) {
        showToast("请输入姓名")
        return false
    }
    if (driverRegister.sex == 0) {
        showToast("请选择性别")
        return false
    }
    if (!checkCardId(driverRegister.idcard)) {
        return false
    }
    if (TextUtils.isEmpty(driverRegister.drivage)) {
        showToast("请选择驾龄")
        return false
    }
    if (TextUtils.isEmpty(driverRegister.licence)) {
        showToast("请选择驾驶证")
        return false
    }
    if (TextUtils.isEmpty(driverRegister.modelId)) {
        showToast("请选择车辆类型")
        return false
    }
    if (TextUtils.isEmpty(driverRegister.color)) {
        showToast("请选择车辆颜色")
        return false
    }
    if (TextUtils.isEmpty(driverRegister.plateNumber)) {
        showToast("请输入车牌号")
        return false
    }
    if (TextUtils.isEmpty(driverRegister.plateArea)) {
        showToast("请选择车牌号")
        return false
    }
//    if (TextUtils.isEmpty(driverRegister.seat)) {
//        showToast("请选择座位数")
//        return false
//    }
    if (TextUtils.isEmpty(driverRegister.careful)) {
        showToast("请选择年审时间")
        return false
    }
    if (TextUtils.isEmpty(driverRegister.travel)) {
        showToast("请选择行驶证")
        return false
    }
    if (TextUtils.isEmpty(driverRegister.insurance)) {
        showToast("请选择保险")
        return false
    }
    if (TextUtils.isEmpty(driverRegister.peoplecar)) {
        showToast("请选择人车合影")
        return false
    }

    return true
}

/**
 *检测司机注册信息是否填完了
 */
fun Activity.checkHotelRegister(hotelRegister: HotelRegister): Boolean {
    if (TextUtils.isEmpty(hotelRegister.name)) {
        showToast("请输入酒店名字")
        return false
    }
    if (TextUtils.isEmpty(hotelRegister.cityCode)) {
        showToast("请选择酒店所在地区")
        return false
    }
    if (TextUtils.isEmpty(hotelRegister.typeString)) {
        showToast("请选择酒店类型")
        return false
    }
    if (TextUtils.isEmpty(hotelRegister.featureString)) {
        showToast("请选择酒店特色")
        return false
    }

    if (TextUtils.isEmpty(hotelRegister.hotelAddr)) {
        showToast("请选择酒店详细地址")
        return false
    }
    if (TextUtils.isEmpty(hotelRegister.people)) {
        showToast("请选择酒店联系人姓名")
        return false
    }
    if (!checkPhoneNumber(hotelRegister.phone)) {
        return false
    }
    if (TextUtils.isEmpty(hotelRegister.showimg)) {
        showToast("请选择酒店展示图")
        return false
    }
    if (TextUtils.isEmpty(hotelRegister.businImg)) {
        showToast("请选择酒店营业执照")
        return false
    }
    if (TextUtils.isEmpty(hotelRegister.specialImg)) {
        showToast("请选择酒店特种行业许可证")
        return false
    }
    if (TextUtils.isEmpty(hotelRegister.healthImg)) {
        showToast("请选择酒店卫生许可证")
        return false
    }
    if (TextUtils.isEmpty(hotelRegister.fireImg)) {
        showToast("请选择酒店消防安全许可证")
        return false
    }
    return true
}